Data stored at data stores become corrupt or inaccessible when the memories at which the data stores store data become corrupt or cease to function properly. As a specific example, a data store page can have errors such as incorrect, inaccessible, or corrupt data values if the memory or storage media at which that page is stored ceases to properly store data. Data stores are often recovered from such system or storage media failures using snapshots or backups of the data stores (e.g., copies of the data stored at the data stores). Additionally, many data stores include a recovery log that records transactions (e.g., what data was altered) within the data store and aids in recovery or rollback of transactions after such failures.
For example, an update record can be stored at the recovery log when data at a page of the data store is to be altered or updated. After detecting a failure such as a storage media failure at a data store, a recovery mechanism searches the snapshots of the data store to locate a copy of the data (or contents) of the data store that does not include errors resulting from the failure. After such a snapshot is located, the data from the snapshot can be copied to a functioning memory (or memory locations of a memory). Update records from the recovery log are then applied to the copy of the snapshot to update that data at the snapshot to the most recent state of the data store that does not include errors from the failure.
Identifying a copy of the data store that does not include errors resulting from the failure, replicating that copy of the data store, and applying update records to that copy of the data store can be a time- and resource-intensive process. For example, the data store is often taken offline (e.g., made unavailable or not responsive to client requests) during recovery of the data store due to the time and computing resources required to identify a copy of the data store that does not include errors resulting from the failure.